package com.yf.course.modules.course.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yf.course.modules.course.dto.CourseFileDTO;
import com.yf.course.modules.course.dto.ext.CourseRefDirExtDTO;
import com.yf.course.modules.course.dto.ext.CourseRefFileExtDTO;
import com.yf.course.modules.course.dto.request.CourseFileFetchReqDTO;
import com.yf.course.modules.course.dto.request.CourseFileReqDTO;
import com.yf.course.modules.course.entity.CourseFile;
import com.yf.course.modules.course.entity.Video;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* <p>
* 课件信息Mapper
* </p>
*
* @author 聪明笨狗
* @since 2020-12-17 11:28
*/
public interface CourseFileMapper extends BaseMapper<CourseFile> {

    /**
     * 获取目录及课件列表
     * @param query
     * @return
     */
    List<CourseRefDirExtDTO> fetchByCatId(@Param("query") CourseFileFetchReqDTO query);

    /**
     * 查找文件列表
     * @param catId
     * @param excludes
     * @return
     */
    List<CourseRefFileExtDTO> selectFile(@Param("catId") String catId, @Param("excludes") List<String> excludes);

    /**
     * 返回根据上传id查询数据
     */
    List<CourseFileDTO> selectByUploadId(@Param("query")CourseFileDTO query);

    /**
     * 更新状态
     * @param query
     */
    void updateFileStatus(@Param("query") CourseFileDTO query);

    /**
     * 根据课程ID等其他参数进行分页查询课件，courseId必带参数
     */
    Page<CourseFile> selectByCourseIdPage(Page<CourseFile> page, @Param(value = "params") CourseFileReqDTO params);
}
